SQLAlchemy এর বিভিন্ন কম্পোনেন্ট (Core, ORM, Engine)

SQLAlchemy পরিচিতি - এসকিউএল অ্যালকেমি (SQLAlchemy) - Database Tutorials

268

SQLAlchemy একটি শক্তিশালী এবং জনপ্রিয় Python লাইব্রেরি যা relational database management systems (RDBMS) এর সাথে কাজ করার জন্য ব্যবহৃত হয়। এটি দুটি প্রধান কম্পোনেন্টে বিভক্ত: SQLAlchemy Core এবং SQLAlchemy ORM। এছাড়াও, Engine কম্পোনেন্টটি SQLAlchemy এর কাজের মৌলিক অংশ হিসেবে গুরুত্বপূর্ণ ভূমিকা পালন করে।

এখানে SQLAlchemy এর প্রধান কম্পোনেন্টগুলির বিস্তারিত আলোচনা করা হল:


SQLAlchemy Core

SQLAlchemy Core হল SQLAlchemy এর একটি লো-লেভেল API, যা আপনার SQL স্টেটমেন্টগুলি সরাসরি তৈরি এবং এক্সিকিউট করার জন্য ব্যবহৃত হয়। এটি SQLAlchemy এর মূল অংশ যা কমপ্লেক্স SQL কুয়েরি তৈরি এবং ডেটাবেসের সাথে ইন্টারঅ্যাকশন করার জন্য ব্যবহৃত হয়। Core ব্যবহারের মাধ্যমে আপনি SQL কোডে বেশি নিয়ন্ত্রণ রাখতে পারেন এবং এটি ডেটাবেস ইঞ্জিন থেকে সরাসরি SQL কমান্ড পাঠানোর জন্য উপযুক্ত।

মূল বৈশিষ্ট্যসমূহ:
  • SQL Expression Language: SQLAlchemy Core আপনাকে SQL কোড লেখার জন্য একটি উচ্চ-স্তরের API প্রদান করে।
  • Table and Column Objects: ডেটাবেস টেবিল এবং কলাম সৃষ্টির জন্য ব্যবহার করা হয়।
  • Schema Reflection: ডেটাবেসের স্কিমা থেকে টেবিল এবং কলামের তথ্য নিয়ে আসে।
  • Connection and Transaction Management: ডেটাবেস কানেকশন এবং ট্রানজেকশন পরিচালনা করার সুবিধা।

Core এর ব্যবহার উদাহরণ:

from sqlalchemy import create_engine, Table, MetaData, Column, Integer, String

# ইঞ্জিন তৈরি
engine = create_engine('sqlite:///example.db', echo=True)

# মেটাডেটা এবং টেবিল ডেফিনেশন
metadata = MetaData()
users = Table('users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('age', Integer)
)

# টেবিল তৈরি
metadata.create_all(engine)

# কানেকশন তৈরি
with engine.connect() as connection:
    result = connection.execute(users.insert(), {'name': 'Alice', 'age': 30})
    print(result.inserted_primary_key)

SQLAlchemy ORM (Object-Relational Mapping)

SQLAlchemy ORM একটি উচ্চ-স্তরের API যা রিলেশনাল ডেটাবেসের টেবিলগুলিকে Python ক্লাসে রূপান্তর করে এবং আপনাকে অবজেক্ট-ওরিয়েন্টেড পদ্ধতিতে ডেটাবেসের সাথে কাজ করার সুযোগ দেয়। ORM আপনার জন্য SQL কুয়েরি তৈরি করে এবং ডেটাবেসের সাথে সম্পর্কিত অবজেক্ট হিসেবে ডেটা ম্যানেজ করতে সাহায্য করে।

মূল বৈশিষ্ট্যসমূহ:
  • Declarative Base: ক্লাস ডেফিনিশন দিয়ে টেবিল তৈরি করা যায়।
  • Query API: ডেটাবেসে কুয়েরি করা সহজ করে।
  • Session Management: অবজেক্ট এবং ডেটাবেসের মধ্যে একটি সেশন তৈরি করে ডেটা ম্যানেজ করা হয়।
  • Relationship Management: টেবিলের মধ্যে সম্পর্ক তৈরি এবং পরিচালনা করা।

ORM এর ব্যবহার উদাহরণ:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# Declarative Base তৈরি
Base = declarative_base()

# টেবিলের ক্লাস ডেফিনিশন
class User(Base):
    __tablename__ = 'users'
    
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

# ইঞ্জিন তৈরি
engine = create_engine('sqlite:///example.db')

# টেবিল তৈরি
Base.metadata.create_all(engine)

# সেশন তৈরি
Session = sessionmaker(bind=engine)
session = Session()

# নতুন ইউজার তৈরি
new_user = User(name='Bob', age=25)

# ডেটাবেসে সেভ করা
session.add(new_user)
session.commit()

# কুয়েরি করা
user = session.query(User).filter_by(name='Bob').first()
print(user.name, user.age)

session.close()

SQLAlchemy Engine

SQLAlchemy Engine হল SQLAlchemy এর কম্পোনেন্ট যা ডেটাবেস কানেকশন এবং SQL কমান্ড এক্সিকিউট করার জন্য ব্যবহৃত হয়। এটি ডেটাবেসের সাথে কমিউনিকেশন ম্যানেজ করে এবং Core বা ORM এর মাধ্যমে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সাহায্য করে।

মূল বৈশিষ্ট্যসমূহ:
  • Database Connection Management: ডেটাবেসের সাথে কানেকশন তৈরি, সংযোগ স্থাপন এবং ম্যানেজমেন্ট।
  • Execution of SQL Statements: SQL স্টেটমেন্টগুলি এক্সিকিউট করা।
  • Transaction Management: ট্রানজেকশন শুরু এবং শেষ করা।
  • Connection Pooling: কানেকশন পুল ব্যবহার করে ডেটাবেসের পারফরম্যান্স উন্নত করা।

Engine এর ব্যবহার উদাহরণ:

from sqlalchemy import create_engine

# ইঞ্জিন তৈরি
engine = create_engine('sqlite:///example.db', echo=True)

# কানেকশন তৈরি
with engine.connect() as connection:
    result = connection.execute("SELECT * FROM users")
    for row in result:
        print(row)

সারাংশ

  • SQLAlchemy Core: এটি SQL কুয়েরি তৈরি এবং এক্সিকিউট করার জন্য লো-লেভেল API।
  • SQLAlchemy ORM: এটি অবজেক্ট-রিলেশনাল ম্যানেজমেন্ট পদ্ধতি যা ডেটাবেসের সাথে অবজেক্ট-ওরিয়েন্টেড পদ্ধতিতে কাজ করার সুবিধা দেয়।
  • SQLAlchemy Engine: এটি SQLAlchemy এর কম্পোনেন্ট যা ডেটাবেস কানেকশন এবং SQL এক্সিকিউশন পরিচালনা করে।

SQLAlchemy এর এই তিনটি কম্পোনেন্ট একে অপরের সাথে কাজ করে এবং ডেটাবেসের সাথে কার্যকরীভাবে ইন্টারঅ্যাক্ট করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...